1. Field of the Invention
The present invention relates to computer operating systems. More specifically, the invention relates to a method of scheduling the use of a computer system resource according to a non-preemptive and dynamically selectable allocation scheme, and selectively quiescing activity from users of the computer system resource.
2. Related Art
Multi-user computer systems are becoming ever more popular. These systems allow hundreds or even thousands of users to share access to a computer system, such as a database system. These computer systems are large and complex, and process much critical data. Service interruptions in such computer systems are costly, and thus it is beneficial to minimize the length and impact of such interruptions on users wherever possible.
These users are each executing processes, running queries, and otherwise accessing the computer system. From time to time, it is necessary to de-activate part or all of the computer system. For example, if a database stored on the computer system becomes damaged, or if a disk drive or logic board in the computer system needs to be replaced, then user access to part or all of the system needs to be temporarily denied, while the needed maintenance is done.
In a traditional computer system, when the system is brought down it is a major disruption to the users. For example, broadcast messages are typically sent to all users, instructing them to log off of the system at a certain time. Frequently, users are also required to terminate any running processes. If a user is in the middle of a session and does not receive the message to log off, the user risks having work in progress interrupted, with a possible loss of data or other negative consequences. When the announced time comes, all user activity is terminated, the system is shut down to all user activity, and the maintenance is performed. Then the computer system is brought back up, and the users are allowed to log back in.
These procedures are very disruptive to the users of the computer system. Because of this, maintenance is often postponed or delayed until a time when the computer system is less busy. However, delaying needed maintenance is itself inefficient, as the computer system's operations suffer while the needed maintenance is delayed. Thus, methods are needed to allow access to a computer system to be shut off with minimal disruption of user activity.